package com.lifeverse.dto;

import com.lifeverse.entity.LifeEntityGroup;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 生命体群体数据传输对象
 */
@Data
public class LifeEntityGroupDTO {
    
    private Long id;
    
    private String groupName;
    
    private LifeEntityGroup.GroupType groupType;
    
    private LifeEntityGroup.GroupStatus groupStatus;
    
    private String description;
    
    private List<Long> memberIds;
    
    private List<String> memberNames;
    
    private Long leaderId;
    
    private String leaderName;
    
    private Integer memberCount;
    
    private BigDecimal wisdomScore;
    
    private BigDecimal cohesionScore;
    
    private BigDecimal efficiencyScore;
    
    private BigDecimal innovationScore;
    
    private BigDecimal collaborationScore;
    
    private BigDecimal learningScore;
    
    private BigDecimal adaptabilityScore;
    
    private BigDecimal stabilityScore;
    
    private BigDecimal diversityIndex;
    
    private BigDecimal activityLevel;
    
    private String objectives;
    
    private String rules;
    
    private String culture;
    
    private String knowledgeBase;
    
    private String decisionHistory;
    
    private String statistics;
    
    private String tags;
    
    private String attributes;
    
    private LocalDateTime formedAt;
    
    private LocalDateTime lastActivityAt;
    
    private LocalDateTime dissolvedAt;
    
    private Boolean isPublic;
    
    private Boolean allowFreeJoin;
    
    private Integer maxMembers;
    
    private Integer minMembers;
    
    private LocalDateTime createdAt;
    
    private LocalDateTime updatedAt;
    
    // 计算字段
    private BigDecimal overallScore;
    
    private Long existenceDays;
    
    private Boolean isHealthy;
    
    private Boolean isStable;
    
    private Boolean isEfficient;
    
    private Boolean isInnovative;
    
    private Boolean canAddMember;
    
    private Boolean hasSufficientMembers;
}